package com.example.bigdata.spark.第一个程序

import org.apache.spark.{SparkConf, SparkContext}

object SparkDemoWordCount {
    def main(args: Array[String]): Unit = {
        WordCount()
    }

    /**
      *   认识 spark 的 Standalone 和 yarn 模式
      *   编写 WordCount 程序并 运行 (本地运行与线上集群模式运行)
      */
    def WordCount (): Unit ={
        // 初始化 sparkconf 对象，设置基本任务参数
        val conf = new SparkConf()
                // 设置目标Master 通信地址
                .setMaster("yarn")
                //.setMaster("local[1]")
                //设置任务名称
                .setAppName("WC")
        //实例化 SparkContext ，Spark 的对外接口负责用户与Spark内部的交互®通信
        val sc = new SparkContext(conf)
        //val wordsFile = "file:///Users/hrsjw1/Documents/Development/idea_Projects/bigdata/input/word.txt"
        val wordsFile = "input/word.txt"
        // 读取文件并进行单词统计
        sc.textFile(wordsFile)
                .flatMap(_.split(" "))
                .map((_,1))
                .reduceByKey(_ + _ , 1)
                .sortBy(_._2,false)
                .saveAsTextFile("output/wc.out")
        // 停止sc，结束该任务
        sc.stop()
    }
}
